package com.itheima;
/*
对于在最后面插入100000条数据的情况来说，ArrayList的效率要比LinkedList更高。这是因为ArrayList在内部使用了数组来存储元素，而数组具有连续存储的特性，所以在末尾插入元素只需要将元素添加到数组末尾，时间复杂度是O(1)。

        相比之下，LinkedList的插入操作需要重新分配节点和维护节点之间的引用关系，而且每个节点都需要在堆内存中单独分配空间。所以，对于大量的插入操作，LinkedList的性能会受到影响，时间复杂度是O(n)。
*/
import java.util.ArrayList;
import java.util.LinkedList;

public class Insert {
    public static void main(String[] args) {

        ArrayList<Integer> arr = new ArrayList<>();
        LinkedList<Integer> link = new LinkedList<>();

        Long arrayListStartTime = System.nanoTime();
        for (int i = 0; i < 10000; i++) {
            arr.add(i);
        }
        Long arrayListEndTime = System.nanoTime();
        Long arrayListTime = arrayListEndTime - arrayListStartTime;
        System.out.println("ArrayList插入数据时间="+arrayListTime);

        Long linkedListStartTime = System.nanoTime();
        for (int i = 0; i < 10000; i++) {
            link.add(i);
        }
        Long linkedListEndTime = System.nanoTime();
        Long linkedListTime = linkedListEndTime - linkedListStartTime;
        System.out.println("LinkedList插入数据时间="+linkedListTime);

    }
}
